package com.botann.projects.service;

import com.botann.projects.model.Menu;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * Charging
 * MenuServiceIntf
 * Created by 刘山国 on 2017/11/23.
 * Copyright (c) 2017 刘山国. All rights reserved
 */
public interface MenuServiceIntf {

    Menu loadMenuWithName(String menuName);

    Menu loadMenuByByPath(String path);

    /**
     * 获取菜单或者菜单分配的ids
     * @return List<Menu>
     */
    List<Menu> loadMenus();

    List<Menu> loadMenusOfRole(Integer roleId); // if null use now user's roleId

    List<Integer> loadMenuIdsOfRole(@NotNull Integer roleId);



    /**
     * 更新不同角色的菜单分配
     * @param idsJson 该角色分配到的菜单ids
     * @param roleId 角色ID
     */
    void updateRoleMenuIds(String idsJson, Integer roleId);


    /**
     * 平台部超级管理员 更新所有菜单(包含新增项)
     * @param menusJson String
     * @param deleteIdsJson String
     */
    void updateMenus(String menusJson, String deleteIdsJson);
}
